home *** CD-ROM | disk | FTP | other *** search
- ;
- ; This is file: MSDOS.MLB.
- ;
- ; It is an include library file containing constant
- ; declarations which are for use with Seattle Computer
- ; Products MS-DOS operating system.
- ;
- ;-------------------------------------------------------------------
- ;
- .XCREF
- ;
- ; MS-DOS interrupt types:
- ;
- ABORT EQU 020H ;Program abort.
- FUNCTIONREQUEST EQU 021H ;Operating system function request.
- RETURNADDRESS EQU 022H ;Return address for called program.
- CONTROLCEXIT EQU 023H ;Address called on a CTRL-C.
- FATALERROREXIT EQU 024H ;Address called on a fatal error.
- ABSOLUTEREAD EQU 025H ;Direct call to I/O system read.
- ABSOLUTEWRITE EQU 026H ;Direct call to I/O system write.
- STAYRESIDENT EQU 027H ;Exit but stay resident.
- ;
- ; MS-DOS function types:
- ;
- TERMINATE EQU 000h ;Program termination.
- CONSOLEINPUT EQU 001h ;Get a console character.
- CONSOLEOUTPUT EQU 002h ;Print a console character.
- AUXILIARYINPUT EQU 003h ;Get char from auxiliary port.
- AUXILIARYOUTPUT EQU 004h ;Put char out to auxiliary port.
- PRINTEROUTPUT EQU 005h ;Put char out to printer port.
- DIRECTCONSOLEIO EQU 006h ;Do direct console I/O.
- ;
- OUTPUTSTRING EQU 009h ;Output a string onto console.
- INPUTSTRING EQU 00ah ;Input a string from console.
- CONSOLESTATUS EQU 00bh ;Check console status.
- ;
- DISKSYSTEMRESET EQU 00dh ;Flushes all file buffers.
- SETDEFAULTDRIVE EQU 00eh ;Select default disk drive.
- OPENFILE EQU 00fh ;Open MS-DOS disk file.
- CLOSEFILE EQU 010h ;Close MS-DOS disk file.
- SEARCHFIRSTFILE EQU 011h ;Search directory for matching file.
- SEARCHNEXTFILE EQU 012h ;Search directory for matching file.
- DELETEFILE EQU 013h ;Delete MS-DOS disk file.
- SEQUENTIALREAD EQU 014h ;Read next disk file record.
- SEQUENTIALWRITE EQU 015h ;Write next disk file record.
- CREATEFILE EQU 016h ;Create MS-DOS disk file.
- RENAMEFILE EQU 017h ;Rename MS-DOS disk file.
- ;
- GETDEFAULTDRIVE EQU 019h ;Get default disk drive.
- SETDMAADDRESS EQU 01ah ;Set disk I/O address.
- ALLOCATIONTABLE EQU 01bh ;Get current drive allocation table.
- ;
- DISKPARAMETERS EQU 01fh ;Get parameters for current disk.
- ;
- RANDOMREAD EQU 021h ;Read a random disk file record.
- RANDOMWRITE EQU 022h ;Write a random disk file record.
- GETFILESIZE EQU 023h ;Get MS-DOS disk file size.
- GETFILEADDRESS EQU 024h ;Set random record to current.
- SETVECTOR EQU 025h ;Set interrupt vector.
- CREATESEGMENT EQU 026h ;Create a segment.
- RANDOMBLKREAD EQU 027h ;Read multiple records random.
- RANDOMBLKWRITE EQU 028h ;Write multiple records random.
- PARSEFILENAME EQU 029h ;Parse MS-DOS disk file name.
- GETCURRENTDATE EQU 02ah ;Get the current date.
- SETCURRENTDATE EQU 02bh ;Set the current date.
- GETCURRENTTIME EQU 02ch ;Get the current time.
- SETCURRENTTIME EQU 02dh ;Set the current time.
- SETVERIFYFLAG EQU 02eh ;Set disk I/O system verify flag.
- getdmaaddress equ 02fh ;Get disk transfer address.
- getdosversion equ 030h ;Get the dos version number.
- ;
- handle_open equ 03dh
- handle_close equ 03eh
- handle_read equ 03fh
- handle_write equ 040h
- handle_io_ctrl equ 044h
- setblock equ 04ah ;Set memory block size.
- execprogram equ 04bh ;Load or execute program.
- findmatchfile equ 04eh ;Find matching files.
- nextmatchfile equ 04fh ;Next matching files.
- ;
- FCB_DSECT STRUC
-
- DRIVECODE DB ZERO
- FILENAME DB ' '
- EXTENSION DB ' '
- CURRENTBLOCK DW ZERO
- RECORDSIZE DW ZERO
- FILESIZE DD ZERO
- FILEDATE DW ZERO
- FILETIME DW ZERO
- DB 8 DUP (ZERO)
- CURRENTRECORD DB ZERO
- RANDOMRECORD DD ZERO
-
- FCB_DSECT ENDS
- ;
- DIR_DSECT STRUC
-
- DB ZERO ;Drive
- DB ' ' ;Name
- DB ' ' ;Extenstion
- DIRATTRIBUTES DB ZERO
- DB 10 DUP (ZERO)
- DIRTIME DW ZERO
- DIRDATE DW ZERO
- DIRFIRSTUNIT DW ZERO
- DIRSIZE DD ZERO
-
- DIR_DSECT ENDS
- ;
- ALTERNATEFCB EQU FILESIZE
- ;
- DATE_DSECT RECORD YEAR:7=0,MONTH:4=0,DAY:5=0
- ;
- TIME_DSECT RECORD HOUR:5=0,MINUTE:6=0,SECOND:5=0
- ;
- LINE_DSECT STRUC
-
- LINEMAXIMUM DB ?
- LINELENGTH DB ?
- LINEDATA DB ?
-
- LINE_DSECT ENDS
- ;
- FILENAMELENGTH EQU OFFSET EXTENSION-OFFSET FILENAME
- EXTENSIONLENGTH EQU OFFSET CURRENTBLOCK-OFFSET EXTENSION
- FCBLENGTH EQU SIZE FCB_DSECT ;Length of an FCB.
- ;
- filespeclength equ byte+filenamelength+extensionlength
- LASTPARAGRAPH EQU 00002H ;Pointer to last memory paragraph + 1.
- LASTADDRESS EQU 00006H ;Program segment size.
- environment equ 00002ch ;Address of segment of environment.
- PROGRAMPARAM1 EQU 00005CH ;Address of first parameter.
- PROGRAMPARAM2 EQU 00006CH ;Address of second parameter.
- PROGRAMPARAMS EQU 000080H ;Address of unformated parameters.
- ;
- DEFAULTDMABUF EQU 000080H ;Address of default DMA buffer.
- ;
- PROGRAMSTART EQU 000100H ;Program start address.
- ;
- PRINTSTRINGEND EQU '$' ;Delimiter for print string.
- SEQUENTIALEOF EQU 001H ;Returned in AL for EOF.
- SEQUENTIALFULL EQU 001H ;Returned in AL when disk is full.
- DOSERRORFLAG EQU 0FFH ;Used for indicating errors.
- DEFAULTDMALEN EQU 080H ;Size of default DMA buffer.
- ENDOFFILECHAR EQU 01AH ;Control Z.
- ;
- read_only equ 001h
- hidden equ 002h
- system equ 004h
- volume_id equ 008h
- directory equ 010h
- archive equ 020h
- ;
- OPEN_FOR_READ EQU 000H
- OPEN_FOR_WRITE EQU 001H
- OPEN_FOR_BOTH EQU 002H
- ;
- HANDLE_GET_INFO EQU 000H
- HANDLE_SET_INFO EQU 001H
- HANDLE_READ_CTRL EQU 002H
- HANDLE_WRITE_CTRL EQU 003H
- DRIVE_READ_CTRL EQU 004H
- DRIVE_WRITE_CTRL EQU 005H
- HANDLE_READ_STATUS EQU 006H
- HANDLE_WRITE_STATUS EQU 007H
- ;
- find_buf struc
-
- find_buf_reserved db 21 dup (?) ;Reserved for MS-DOS.
- find_buf_attr db ? ;Attribute found.
- find_buf_time db ? ;Time for file.
- find_buf_date db ? ;Date for file.
- find_buf_size dd ? ;Size of file.
- find_buf_fill dw ? ;Who knows?
- find_buf_pname db 13 dup (?) ;Packed name.
-
- find_buf ends
- ;
- DOSCALL MACRO CALLTYPE,ADDRESS
- IFNB <ADDRESS>
- MOV DX,OFFSET ADDRESS
- ENDIF
- IFNB <CALLTYPE>
- MOV AH,CALLTYPE
- ENDIF
- INT FUNCTIONREQUEST
- ENDM
- ;
- .CREF
- ;
-
-